-- timing_trigger
--
local import = import
---@type behavior_ret
local bret = import('bt/bt_plugin/behavior3/behavior_ret')
---@type api
local api = import("api/api")
---@type utils
local utils = import("base/utils")

local M = {
    name = "timing_trigger",
    type = "Condition",
    desc = "定时触发",
    args = {
        { name = "hour", type = "int", desc = "时/24小时制" },
        { name = "minute", type = "int?", desc = "分/默认0" },
        { name = "second", type = "int?", desc = "秒/默认0" },
        --{
        --    name = "hour",
        --    type = "enum",
        --    desc = "时",
        --    options = {
        --        {
        --            name = "测试",
        --            value = "测试",
        --        },
        --    },
        --},
        --{
        --    name = "minute",
        --    type = "enum",
        --    desc = "分",
        --    options = {
        --        {
        --            name = "测试",
        --            value = "测试",
        --        },
        --    },
        --},
        --{
        --    name = "second",
        --    type = "enum",
        --    desc = "秒",
        --    options = {
        --        {
        --            name = "测试",
        --            value = "测试",
        --        },
        --    },
        --},
    },
    input = {},
    output = {},
}

function M.run(node, env, value)
    -- node.args.str
    local current_hour = utils.get_hour()
    local current_minute = utils.get_minute()
    local current_second = utils.get_second()
    local hour = node.args.hour
    local minute = node.args.minute or 0
    local second = node.args.second or 0
    if current_hour >= hour then
        if current_minute >= minute then
            if current_second >= second then
                return bret.SUCCESS
            end
        end
    end
    return bret.FAIL
end

return M
